home *** CD-ROM | disk | FTP | other *** search
/ MacAddict 114 / macaddict114.cdr / Software / Utilities / macam.0.8.4.dmg / macam sources / utilities / Resolvers.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-10-24  |  21.8 KB  |  255 lines

  1. /*
  2.     macam - webcam app and QuickTime driver component
  3.     Copyright (C) 2002 Matthias Krauss (macam@matthias-krauss.de)
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  $Id: Resolvers.c,v 1.2 2002/10/24 18:19:19 mattik Exp $
  19. */
  20.  
  21. #include "Resolvers.h"
  22. #include <QuickTime/QuickTime.h>
  23.  
  24.  
  25. bool ErrorName (IOReturn err, char* out_buf) {
  26.     bool ok=true;
  27.     switch (err) {
  28.         case 0: sprintf(out_buf,"ok"); break;     
  29.         case kIOReturnError: sprintf(out_buf,"kIOReturnError - general error"); break;     
  30.         case kIOReturnNoMemory: sprintf(out_buf,"kIOReturnNoMemory - can't allocate memory");  break;
  31.         case kIOReturnNoResources: sprintf(out_buf,"kIOReturnNoResources - resource shortage"); break;
  32.         case kIOReturnIPCError: sprintf(out_buf,"kIOReturnIPCError - error during IPC"); break;
  33.         case kIOReturnNoDevice: sprintf(out_buf,"kIOReturnNoDevice - no such device"); break;
  34.         case kIOReturnNotPrivileged: sprintf(out_buf,"kIOReturnNotPrivileged - privilege violation"); break;
  35.         case kIOReturnBadArgument: sprintf(out_buf,"kIOReturnBadArgument - invalid argument"); break;
  36.         case kIOReturnLockedRead: sprintf(out_buf,"kIOReturnLockedRead - device read locked"); break;
  37.         case kIOReturnLockedWrite: sprintf(out_buf,"kIOReturnLockedWrite - device write locked"); break;
  38.         case kIOReturnExclusiveAccess: sprintf(out_buf,"kIOReturnExclusiveAccess - exclusive access and device already open"); break;
  39.         case kIOReturnBadMessageID: sprintf(out_buf,"kIOReturnBadMessageID - sent/received messages had different msg_id"); break;
  40.         case kIOReturnUnsupported: sprintf(out_buf,"kIOReturnUnsupported - unsupported function"); break;
  41.         case kIOReturnVMError: sprintf(out_buf,"kIOReturnVMError - misc. VM failure"); break;
  42.         case kIOReturnInternalError: sprintf(out_buf,"kIOReturnInternalError - internal error"); break;
  43.         case kIOReturnIOError: sprintf(out_buf,"kIOReturnIOError - General I/O error"); break;
  44.         case kIOReturnCannotLock: sprintf(out_buf,"kIOReturnCannotLock - can't acquire lock"); break;
  45.         case kIOReturnNotOpen: sprintf(out_buf,"kIOReturnNotOpen - device not open"); break;
  46.         case kIOReturnNotReadable: sprintf(out_buf,"kIOReturnNotReadable - read not supported"); break;
  47.         case kIOReturnNotWritable: sprintf(out_buf,"kIOReturnNotWritable - write not supported"); break;
  48.         case kIOReturnNotAligned: sprintf(out_buf,"kIOReturnNotAligned - alignment error"); break;
  49.         case kIOReturnBadMedia: sprintf(out_buf,"kIOReturnBadMedia - Media Error"); break;
  50.         case kIOReturnStillOpen: sprintf(out_buf,"kIOReturnStillOpen - device(s) still open"); break;
  51.         case kIOReturnRLDError: sprintf(out_buf,"kIOReturnRLDError - rld failure"); break;
  52.         case kIOReturnDMAError: sprintf(out_buf,"kIOReturnDMAError - DMA failure"); break;
  53.         case kIOReturnBusy: sprintf(out_buf,"kIOReturnBusy - Device Busy"); break;
  54.         case kIOReturnTimeout: sprintf(out_buf,"kIOReturnTimeout - I/O Timeout"); break;
  55.         case kIOReturnOffline: sprintf(out_buf,"kIOReturnOffline - device offline"); break;
  56.         case kIOReturnNotReady: sprintf(out_buf,"kIOReturnNotReady - not ready"); break;
  57.         case kIOReturnNotAttached: sprintf(out_buf,"kIOReturnNotAttached - device not attached"); break;
  58.         case kIOReturnNoChannels: sprintf(out_buf,"kIOReturnNoChannels - no DMA channels left"); break;
  59.         case kIOReturnNoSpace: sprintf(out_buf,"kIOReturnNoSpace - no space for data"); break;
  60.         case kIOReturnPortExists: sprintf(out_buf,"kIOReturnPortExists - port already exists"); break;
  61.         case kIOReturnCannotWire: sprintf(out_buf,"kIOReturnCannotWire - can't wire down physical memory"); break;
  62.         case kIOReturnNoInterrupt: sprintf(out_buf,"kIOReturnNoInterrupt - no interrupt attached"); break;
  63.         case kIOReturnNoFrames: sprintf(out_buf,"kIOReturnNoFrames - no DMA frames enqueued"); break;
  64.         case kIOReturnMessageTooLarge: sprintf(out_buf,"kIOReturnMessageTooLarge - oversized msg received on interrupt port"); break;
  65.         case kIOReturnNotPermitted: sprintf(out_buf,"kIOReturnNotPermitted - not permitted"); break;
  66.         case kIOReturnNoPower: sprintf(out_buf,"kIOReturnNoPower - no power to device"); break;
  67.         case kIOReturnNoMedia: sprintf(out_buf,"kIOReturnNoMedia - media not present"); break;
  68.         case kIOReturnUnformattedMedia: sprintf(out_buf,"kIOReturnUnformattedMedia - media not formatted"); break;
  69.         case kIOReturnUnsupportedMode: sprintf(out_buf,"kIOReturnUnsupportedMode - no such mode"); break;
  70.         case kIOReturnUnderrun: sprintf(out_buf,"kIOReturnUnderrun - data underrun"); break;
  71.         case kIOReturnOverrun: sprintf(out_buf,"kIOReturnOverrun - data overrun"); break;
  72.         case kIOReturnDeviceError: sprintf(out_buf,"kIOReturnDeviceError - the device is not working properly!"); break;
  73.         case kIOReturnNoCompletion: sprintf(out_buf,"kIOReturnNoCompletion - a completion routine is required"); break;
  74.         case kIOReturnAborted: sprintf(out_buf,"kIOReturnAborted - operation aborted"); break;
  75.         case kIOReturnNoBandwidth: sprintf(out_buf,"kIOReturnNoBandwidth - bus bandwidth would be exceeded"); break;
  76.         case kIOReturnNotResponding: sprintf(out_buf,"kIOReturnNotResponding - device not responding"); break;
  77.         case kIOReturnIsoTooOld: sprintf(out_buf,"kIOReturnIsoTooOld - isochronous I/O request for distant past!"); break;
  78.         case kIOReturnIsoTooNew: sprintf(out_buf,"kIOReturnIsoTooNew - isochronous I/O request for distant future"); break;
  79.         case kIOReturnNotFound: sprintf(out_buf,"kIOReturnNotFound - data was not found"); break;
  80.         case kIOReturnInvalid: sprintf(out_buf,"kIOReturnInvalid - should never be seen"); break;
  81.         case kIOUSBUnknownPipeErr:sprintf(out_buf,"kIOUSBUnknownPipeErr - Pipe ref not recognised"); break;
  82.         case kIOUSBTooManyPipesErr:sprintf(out_buf,"kIOUSBTooManyPipesErr - Too many pipes"); break;
  83.         case kIOUSBNoAsyncPortErr:sprintf(out_buf,"kIOUSBNoAsyncPortErr - no async port"); break;
  84.         case kIOUSBNotEnoughPipesErr:sprintf(out_buf,"kIOUSBNotEnoughPipesErr - not enough pipes in interface"); break;
  85.         case kIOUSBNotEnoughPowerErr:sprintf(out_buf,"kIOUSBNotEnoughPowerErr - not enough power for selected configuration"); break;
  86.         case kIOUSBEndpointNotFound:sprintf(out_buf,"kIOUSBEndpointNotFound - Not found"); break;
  87.         case kIOUSBConfigNotFound:sprintf(out_buf,"kIOUSBConfigNotFound - Not found"); break;
  88.         case kIOUSBTransactionTimeout:sprintf(out_buf,"kIOUSBTransactionTimeout - time out"); break;
  89.         case kIOUSBTransactionReturned:sprintf(out_buf,"kIOUSBTransactionReturned - The transaction has been returned to the caller"); break;
  90.         case kIOUSBPipeStalled:sprintf(out_buf,"kIOUSBPipeStalled - Pipe has stalled, error needs to be cleared"); break;
  91.         case kIOUSBInterfaceNotFound:sprintf(out_buf,"kIOUSBInterfaceNotFound - Interface ref not recognised"); break;
  92.         case kIOUSBLinkErr:sprintf(out_buf,"kIOUSBLinkErr - <no error description available>"); break;
  93.         case kIOUSBNotSent2Err:sprintf(out_buf,"kIOUSBNotSent2Err - Transaction not sent"); break;
  94.         case kIOUSBNotSent1Err:sprintf(out_buf,"kIOUSBNotSent1Err - Transaction not sent"); break;
  95.         case kIOUSBBufferUnderrunErr:sprintf(out_buf,"kIOUSBBufferUnderrunErr - Buffer Underrun (Host hardware failure on data out, PCI busy?)"); break;
  96.         case kIOUSBBufferOverrunErr:sprintf(out_buf,"kIOUSBBufferOverrunErr - Buffer Overrun (Host hardware failure on data out, PCI busy?)"); break;
  97.         case kIOUSBReserved2Err:sprintf(out_buf,"kIOUSBReserved2Err - Reserved"); break;
  98.         case kIOUSBReserved1Err:sprintf(out_buf,"kIOUSBReserved1Err - Reserved"); break;
  99.         case kIOUSBWrongPIDErr:sprintf(out_buf,"kIOUSBWrongPIDErr - Pipe stall, Bad or wrong PID"); break;
  100.         case kIOUSBPIDCheckErr:sprintf(out_buf,"kIOUSBPIDCheckErr - Pipe stall, PID CRC Err:or"); break;
  101.         case kIOUSBDataToggleErr:sprintf(out_buf,"kIOUSBDataToggleErr - Pipe stall, Bad data toggle"); break;
  102.         case kIOUSBBitstufErr:sprintf(out_buf,"kIOUSBBitstufErr - Pipe stall, bitstuffing"); break;
  103.         case kIOUSBCRCErr:sprintf(out_buf,"kIOUSBCRCErr - Pipe stall, bad CRC"); break;
  104.         
  105.         default: sprintf(out_buf,"Unknown Error:%d Sub:%d System:%d",err_get_code(err),
  106.                 err_get_sub(err),err_get_system(err)); ok=false; break;
  107.     }
  108.     return ok;
  109. }
  110.  
  111. void ShowError(IOReturn err, char* where) {
  112.     char buf[256];
  113.     if (where) {
  114.         printf(where);
  115.         printf(": ");
  116.     }
  117.     if (err==0) {
  118.         printf("ok");
  119.     } else {
  120.         printf("Error: ");
  121.         ErrorName(err,buf);
  122.         printf(buf);
  123.     }
  124.     printf("\n");
  125. }
  126.  
  127. void CheckError(IOReturn err, char* where) {
  128.     if (err) {
  129.         ShowError(err,where);
  130.     }
  131. }
  132.  
  133. bool ResolveVDSelector(short sel, char* str) {
  134.     switch (sel) {
  135.         case kComponentRegisterSelect:sprintf(str,"kComponentRegisterSelect"); break;
  136.         case kComponentOpenSelect:sprintf(str,"kComponentOpenSelect"); break;
  137.         case kComponentCloseSelect:sprintf(str,"kComponentCloseSelect"); break;
  138.         case kComponentCanDoSelect:sprintf(str,"kComponentCanDoSelect"); break;
  139.         case kComponentVersionSelect:sprintf(str,"kComponentVersionSelect"); break;
  140.         case kVDGetMaxSrcRectSelect: sprintf(str,"kVDGetMaxSrcRectSelect"); break; //                     = 0x0001,
  141.         case kVDGetActiveSrcRectSelect: sprintf(str,"kVDGetActiveSrcRectSelect"); break; //                  = 0x0002,
  142.         case kVDSetDigitizerRectSelect: sprintf(str,"kVDSetDigitizerRectSelect"); break; //                  = 0x0003,
  143.         case kVDGetDigitizerRectSelect: sprintf(str,"kVDGetDigitizerRectSelect"); break; //                  = 0x0004,
  144.         case kVDGetVBlankRectSelect: sprintf(str,"kVDGetVBlankRectSelect"); break; //                     = 0x0005,
  145.         case kVDGetMaskPixMapSelect: sprintf(str,"kVDGetMaskPixMapSelect"); break; //                     = 0x0006,
  146.         case kVDGetPlayThruDestinationSelect: sprintf(str,"kVDGetPlayThruDestinationSelect"); break; //            = 0x0008,
  147.         case kVDUseThisCLUTSelect: sprintf(str,"kVDUseThisCLUTSelect"); break; //                       = 0x0009,
  148.         case kVDSetInputGammaValueSelect: sprintf(str,"kVDSetInputGammaValueSelect"); break; //                = 0x000A,
  149.         case kVDGetInputGammaValueSelect: sprintf(str,"kVDGetInputGammaValueSelect"); break; //                = 0x000B,
  150.         case kVDSetBrightnessSelect: sprintf(str,"kVDSetBrightnessSelect"); break; //                     = 0x000C,
  151.         case kVDGetBrightnessSelect: sprintf(str,"kVDGetBrightnessSelect"); break; //                     = 0x000D,
  152.         case kVDSetContrastSelect: sprintf(str,"kVDSetContrastSelect"); break; //                       = 0x000E,
  153.         case kVDSetHueSelect: sprintf(str,"kVDSetHueSelect"); break; //                            = 0x000F,
  154.         case kVDSetSharpnessSelect: sprintf(str,"kVDSetSharpnessSelect"); break; //                      = 0x0010,
  155.         case kVDSetSaturationSelect: sprintf(str,"kVDSetSaturationSelect"); break; //                     = 0x0011,
  156.         case kVDGetContrastSelect: sprintf(str,"kVDGetContrastSelect"); break; //                       = 0x0012,
  157.         case kVDGetHueSelect: sprintf(str,"kVDGetHueSelect"); break; //                            = 0x0013,
  158.         case kVDGetSharpnessSelect: sprintf(str,"kVDGetSharpnessSelect"); break; //                      = 0x0014,
  159.         case kVDGetSaturationSelect: sprintf(str,"kVDGetSaturationSelect"); break; //                     = 0x0015,
  160.         case kVDGrabOneFrameSelect: sprintf(str,"kVDGrabOneFrameSelect"); break; //                      = 0x0016,
  161.         case kVDGetMaxAuxBufferSelect: sprintf(str,"kVDGetMaxAuxBufferSelect"); break; //                   = 0x0017,
  162.         case kVDGetDigitizerInfoSelect: sprintf(str,"kVDGetDigitizerInfoSelect"); break; //                  = 0x0019,
  163.         case kVDGetCurrentFlagsSelect: sprintf(str,"kVDGetCurrentFlagsSelect"); break; //                   = 0x001A,
  164.         case kVDSetKeyColorSelect: sprintf(str,"kVDSetKeyColorSelect"); break; //                       = 0x001B,
  165.         case kVDGetKeyColorSelect: sprintf(str,"kVDGetKeyColorSelect"); break; //                       = 0x001C,
  166.         case kVDAddKeyColorSelect: sprintf(str,"kVDAddKeyColorSelect"); break; //                       = 0x001D,
  167.         case kVDGetNextKeyColorSelect: sprintf(str,"kVDGetNextKeyColorSelect"); break; //                   = 0x001E,
  168.         case kVDSetKeyColorRangeSelect: sprintf(str,"kVDSetKeyColorRangeSelect"); break; //                  = 0x001F,
  169.         case kVDGetKeyColorRangeSelect: sprintf(str,"kVDGetKeyColorRangeSelect"); break; //                  = 0x0020,
  170.         case kVDSetDigitizerUserInterruptSelect: sprintf(str,"kVDSetDigitizerUserInterruptSelect"); break; //         = 0x0021,
  171.         case kVDSetInputColorSpaceModeSelect: sprintf(str,"kVDSetInputColorSpaceModeSelect"); break; //            = 0x0022,
  172.         case kVDGetInputColorSpaceModeSelect: sprintf(str,"kVDGetInputColorSpaceModeSelect"); break; //            = 0x0023,
  173.         case kVDSetClipStateSelect: sprintf(str,"kVDSetClipStateSelect"); break; //                      = 0x0024,
  174.         case kVDGetClipStateSelect: sprintf(str,"kVDGetClipStateSelect"); break; //                      = 0x0025,
  175.         case kVDSetClipRgnSelect: sprintf(str,"kVDSetClipRgnSelect"); break; //                        = 0x0026,
  176.         case kVDClearClipRgnSelect: sprintf(str,"kVDClearClipRgnSelect"); break; //                      = 0x0027,
  177.         case kVDGetCLUTInUseSelect: sprintf(str,"kVDGetCLUTInUseSelect"); break; //                      = 0x0028,
  178.         case kVDSetPLLFilterTypeSelect: sprintf(str,"kVDSetPLLFilterTypeSelect"); break; //                  = 0x0029,
  179.         case kVDGetPLLFilterTypeSelect: sprintf(str,"kVDGetPLLFilterTypeSelect"); break; //                  = 0x002A,
  180.         case kVDGetMaskandValueSelect: sprintf(str,"kVDGetMaskandValueSelect"); break; //                   = 0x002B,
  181.         case kVDSetMasterBlendLevelSelect: sprintf(str,"kVDSetMasterBlendLevelSelect"); break; //               = 0x002C,
  182.         case kVDSetPlayThruDestinationSelect: sprintf(str,"kVDSetPlayThruDestinationSelect"); break; //            = 0x002D,
  183.         case kVDSetPlayThruOnOffSelect: sprintf(str,"kVDSetPlayThruOnOffSelect"); break; //                  = 0x002E,
  184.         case kVDSetFieldPreferenceSelect: sprintf(str,"kVDSetFieldPreferenceSelect"); break; //                = 0x002F,
  185.         case kVDGetFieldPreferenceSelect: sprintf(str,"kVDGetFieldPreferenceSelect"); break; //                = 0x0030,
  186.         case kVDPreflightDestinationSelect: sprintf(str,"kVDPreflightDestinationSelect"); break; //              = 0x0032,
  187.         case kVDPreflightGlobalRectSelect: sprintf(str,"kVDPreflightGlobalRectSelect"); break; //               = 0x0033,
  188.         case kVDSetPlayThruGlobalRectSelect: sprintf(str,"kVDPreflightGlobalRectSelect"); break; //             = 0x0034,
  189.         case kVDSetInputGammaRecordSelect: sprintf(str,"kVDSetInputGammaRecordSelect"); break; //               = 0x0035,
  190.         case kVDGetInputGammaRecordSelect: sprintf(str,"kVDGetInputGammaRecordSelect"); break; //               = 0x0036,
  191.         case kVDSetBlackLevelValueSelect: sprintf(str,"kVDSetBlackLevelValueSelect"); break; //                = 0x0037,
  192.         case kVDGetBlackLevelValueSelect: sprintf(str,"kVDGetBlackLevelValueSelect"); break; //                = 0x0038,
  193.         case kVDSetWhiteLevelValueSelect: sprintf(str,"kVDSetWhiteLevelValueSelect"); break; //                = 0x0039,
  194.         case kVDGetWhiteLevelValueSelect: sprintf(str,"kVDGetWhiteLevelValueSelect"); break; //                = 0x003A,
  195.         case kVDGetVideoDefaultsSelect: sprintf(str,"kVDGetVideoDefaultsSelect"); break; //                  = 0x003B,
  196.         case kVDGetNumberOfInputsSelect: sprintf(str,"kVDGetNumberOfInputsSelect"); break; //                 = 0x003C,
  197.         case kVDGetInputFormatSelect: sprintf(str,"kVDGetInputFormatSelect"); break; //                    = 0x003D,
  198.         case kVDSetInputSelect: sprintf(str,"kVDSetInputSelect"); break; //                          = 0x003E,
  199.         case kVDGetInputSelect: sprintf(str,"kVDGetInputSelect"); break; //                          = 0x003F,
  200.         case kVDSetInputStandardSelect: sprintf(str,"kVDSetInputStandardSelect"); break; //                  = 0x0040,
  201.         case kVDSetupBuffersSelect: sprintf(str,"kVDSetupBuffersSelect"); break; //                      = 0x0041,
  202.         case kVDGrabOneFrameAsyncSelect: sprintf(str,"kVDGrabOneFrameAsyncSelect"); break; //                 = 0x0042,
  203.         case kVDDoneSelect: sprintf(str,"kVDDoneSelect"); break; //                              = 0x0043,
  204.         case kVDSetCompressionSelect: sprintf(str,"kVDSetCompressionSelect"); break; //                    = 0x0044,
  205.         case kVDCompressOneFrameAsyncSelect: sprintf(str,"kVDCompressOneFrameAsyncSelect"); break; //             = 0x0045,
  206.         case kVDCompressDoneSelect: sprintf(str,"kVDCompressDoneSelect"); break; //                      = 0x0046,
  207.         case kVDReleaseCompressBufferSelect: sprintf(str,"kVDReleaseCompressBufferSelect"); break; //             = 0x0047,
  208.         case kVDGetImageDescriptionSelect: sprintf(str,"kVDGetImageDescriptionSelect"); break; //               = 0x0048,
  209.         case kVDResetCompressSequenceSelect: sprintf(str,"kVDResetCompressSequenceSelect"); break; //             = 0x0049,
  210.         case kVDSetCompressionOnOffSelect: sprintf(str,"kVDSetCompressionOnOffSelect"); break; //               = 0x004A,
  211.         case kVDGetCompressionTypesSelect: sprintf(str,"kVDGetCompressionTypesSelect"); break; //               = 0x004B,
  212.         case kVDSetTimeBaseSelect: sprintf(str,"kVDSetTimeBaseSelect"); break; //                       = 0x004C,
  213.         case kVDSetFrameRateSelect: sprintf(str,"kVDSetFrameRateSelect"); break; //                      = 0x004D,
  214.         case kVDGetDataRateSelect: sprintf(str,"kVDGetDataRateSelect"); break; //                       = 0x004E,
  215.         case kVDGetSoundInputDriverSelect: sprintf(str,"kVDGetSoundInputDriverSelect"); break; //               = 0x004F,
  216.         case kVDGetDMADepthsSelect: sprintf(str,"kVDGetDMADepthsSelect"); break; //                      = 0x0050,
  217.         case kVDGetPreferredTimeScaleSelect: sprintf(str,"kVDGetPreferredTimeScaleSelect"); break; //             = 0x0051,
  218.         case kVDReleaseAsyncBuffersSelect: sprintf(str,"kVDReleaseAsyncBuffersSelect"); break; //               = 0x0052,
  219.         case kVDSetDataRateSelect: sprintf(str,"kVDSetDataRateSelect"); break; //                       = 0x0054,
  220.         case kVDGetTimeCodeSelect: sprintf(str,"kVDGetTimeCodeSelect"); break; //                       = 0x0055,
  221.         case kVDUseSafeBuffersSelect: sprintf(str,"kVDUseSafeBuffersSelect"); break; //                    = 0x0056,
  222.         case kVDGetSoundInputSourceSelect: sprintf(str,"kVDGetSoundInputSourceSelect"); break; //               = 0x0057,
  223.         case kVDGetCompressionTimeSelect: sprintf(str,"kVDGetCompressionTimeSelect"); break; //                = 0x0058,
  224.         case kVDSetPreferredPacketSizeSelect: sprintf(str,"kVDSetPreferredPacketSizeSelect"); break; //            = 0x0059,
  225.         case kVDSetPreferredImageDimensionsSelect: sprintf(str,"kVDSetPreferredImageDimensionsSelect"); break; //       = 0x005A,
  226.         case kVDGetPreferredImageDimensionsSelect: sprintf(str,"kVDGetPreferredImageDimensionsSelect"); break; //       = 0x005B,
  227.         case kVDGetInputNameSelect: sprintf(str,"kVDGetInputNameSelect"); break; //                      = 0x005C,
  228.         case kVDSetDestinationPortSelect: sprintf(str,"kVDSetDestinationPortSelect"); break; //                = 0x005D,
  229.  
  230.         case kSGPanelGetDitlSelect: sprintf(str,"kSGPanelGetDitlSelect"); break; //                      = 0x0200,
  231.         case kSGPanelGetTitleSelect: sprintf(str,"kSGPanelGetTitleSelect"); break; //                     = 0x0201,
  232.         case kSGPanelCanRunSelect: sprintf(str,"kSGPanelCanRunSelect"); break; //                       = 0x0202,
  233.         case kSGPanelInstallSelect: sprintf(str,"kSGPanelInstallSelect"); break; //                      = 0x0203,
  234.         case kSGPanelEventSelect: sprintf(str,"kSGPanelEventSelect"); break; //                        = 0x0204,
  235.         case kSGPanelItemSelect: sprintf(str,"kSGPanelItemSelect"); break; //                         = 0x0205,
  236.         case kSGPanelRemoveSelect: sprintf(str,"kSGPanelRemoveSelect"); break; //                       = 0x0206,
  237.         case kSGPanelSetGrabberSelect: sprintf(str,"kSGPanelSetGrabberSelect"); break; //                   = 0x0207,
  238.         case kSGPanelSetResFileSelect: sprintf(str,"kSGPanelSetResFileSelect"); break; //                   = 0x0208,
  239.         case kSGPanelGetSettingsSelect: sprintf(str,"kSGPanelGetSettingsSelect"); break; //                  = 0x0209,
  240.         case kSGPanelSetSettingsSelect: sprintf(str,"kSGPanelSetSettingsSelect"); break; //                  = 0x020A,
  241.         case kSGPanelValidateInputSelect: sprintf(str,"kSGPanelValidateInputSelect"); break; //                = 0x020B,
  242.         case kSGPanelSetEventFilterSelect: sprintf(str,"kSGPanelSetEventFilterSelect"); break; //               = 0x020C,
  243.             
  244.         default: sprintf(str,"unknown component function selector: %d",sel); return false; break;
  245.     }
  246.     return true;
  247. }
  248.  
  249. void PrintVDSelector(short sel) {
  250.     char name[300];
  251.     ResolveVDSelector(sel,name);
  252.     printf("%s\n",name);
  253. }
  254.  
  255.